home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d18 / probots.arc / MECHANIC.PR < prev    next >
Text File  |  1991-04-28  |  2KB  |  61 lines

  1.   PROCEDURE Mechanic;
  2.  
  3.     { Based on a C-Robot By Bruce Oberleitner }
  4.  
  5.  
  6.     {     Sometimes, simplicity is best.  This robot has absolutely    }
  7.     {     no defense whatsoever!!  It quickly locks onto a target      }
  8.     {     and chases it around the playfield.  It relies on the target }
  9.     {     going into a defensive mode while it stays on the ofensive.  }
  10.     {     If the target is destroyed or it moves out of the scan area, }
  11.     {     a new target is selected and fired upon.                     }
  12.  
  13.  
  14.   VAR Range      : Integer;
  15.     Angle          : Integer;
  16.  
  17.  
  18.     PROCEDURE med_scan(scan_angle : Integer);
  19.       { within 10 degrees of original scan angle  }
  20.  
  21.     VAR temp_angle : Integer;
  22.       res            : Integer;
  23.       Inc            : Integer;
  24.     BEGIN
  25.       temp_angle := scan_angle-5;
  26.       WHILE (temp_angle <= (scan_angle+30)) DO
  27.         BEGIN
  28.           Range := scan(temp_angle, 5); { scan 10 degree section }
  29.           drive(temp_angle, 50);
  30.           IF (Range <> 0) THEN 
  31.             cannon(temp_angle, Range);
  32.           IF (Range = 0) THEN
  33.             temp_angle := temp_angle+5;
  34.         END; { while }
  35.     END; { end of med_scan }
  36.  
  37.  
  38.     PROCEDURE corse_scan(scan_angle : Integer);
  39.     BEGIN 
  40.       WHILE True DO {Loop Forever}
  41.         BEGIN
  42.           Range := scan(scan_angle, 10);
  43.           IF (Range <> 0) THEN
  44.             BEGIN
  45.               cannon(scan_angle, Range); { take a real potshot }
  46.               drive(scan_angle, 50);
  47.               med_scan(scan_angle);
  48.             END;
  49.           scan_angle := scan_angle+20;
  50.         END;
  51.     END; { end of corse sub-program }
  52.  
  53.  
  54.   BEGIN {Mechanic Main}
  55.     Angle := Random(360);
  56.     corse_scan(Angle);
  57.   END; {end of Mechanic Main program }
  58.  
  59.  
  60.  
  61.